/**
 * Witontek.com.
 * Copyright (c) 2012-2016 All Rights Reserved.
 */
package test.inner;

/**
 * 
 * @author Long
 * @version $Id: Out.java, v 0.1 2016年11月3日 下午3:58:24  xiaolong.ma  Exp $
 */
public class Outer {
    private int    i;
    private String name;

    /**
     * Getter method for property <tt>i</tt>.
     * 
     * @return property value of i
     */
    public int getI() {
        return i;
    }

    /**
     * Setter method for property <tt>i</tt>.
     * 
     * @param i value to be assigned to property i
     */
    public void setI(int i) {
        this.i = i;
    }

    /**
     * Getter method for property <tt>name</tt>.
     * 
     * @return property value of name
     */
    public String getName() {
        return name;
    }

    /**
     * Setter method for property <tt>name</tt>.
     * 
     * @param name value to be assigned to property name
     */
    public void setName(String name) {
        this.name = name;
    }

    public class Inner {
        private String inName;

        /**
         * Getter method for property <tt>inName</tt>.
         * 
         * @return property value of inName
         */
        public String getInName() {
            return inName;
        }

        /**
         * Setter method for property <tt>inName</tt>.
         * 
         * @param inName value to be assigned to property inName
         */
        public void setInName(String inName) {
            this.inName = inName;
        }

        public void display() {
            System.out.println("Message from non-static nested class: " + inName);
        }
    }

    public static class StaticInner {
        private String name;
        static String  t = "";

        /**
         * Getter method for property <tt>name</tt>.
         * 
         * @return property value of name
         */
        public String getName() {
            return name;
        }

        /**
         * Setter method for property <tt>name</tt>.
         * 
         * @param name value to be assigned to property name
         */
        public void setName(String name) {
            this.name = name;
        }

        public void display() {
            System.out.println("Message from static nested class: " + name);
        }
    }
}
